package com.zhongkun.datahome.service.service;

import com.zhongkun.datahome.service.req.cmd.house.CustomerHouseCmd;
import com.zhongkun.datahome.service.req.cmd.house.CustomerHouseServerCmd;
import com.zhongkun.datahome.service.req.qry.house.CustomerHouseQry;
import com.zhongkun.datahome.service.res.PageVo;
import com.zhongkun.datahome.service.res.house.CustomerHouseAppVo;
import com.zhongkun.datahome.service.res.house.CustomerHouseDetailVo;
import com.zhongkun.datahome.service.res.house.CustomerHouseSelectVo;
import com.zhongkun.datahome.service.res.house.CustomerHouseVo;

import java.util.List;

/**
 * 客户房产Service接口
 * 
 * @author ruoyi
 * @date 2025-04-14
 */
public interface ICustomerHouseService {
    /**
     * 分页查询客户房产
     *
     * @param qry qry
     * @return page
     */
    PageVo<CustomerHouseVo> page(CustomerHouseQry qry);

    /**
     * 获取房产详情
     *
     * @param id id
     * @return vo
     */
    CustomerHouseDetailVo getInfo(Long id);

    /**
     * 新建
     *
     * @param cmd cmd
     * @return id
     */
    Long add(CustomerHouseCmd cmd);

    /**
     * 修改
     *
     * @param cmd cmd
     */
    void edit(CustomerHouseCmd cmd);

    /**
     * 批量删除
     *
     * @param ids ids
     */
    void remove(List<Long> ids);

    void addServer(CustomerHouseServerCmd cmd);

    void delServer(CustomerHouseServerCmd cmd);

    void updateCustomerHouseMiniProgram(Long customerHouseId);

    List<CustomerHouseAppVo> listHouseInfoForApp(String roomNum, boolean employeeFlag);

    CustomerHouseAppVo getHouseInfoForApp(Long houseId);

    List<CustomerHouseSelectVo> selectHouseInfo(String roomNum);

    void fillAllCustomerHouseImg();

    void deleteByUserIdList(List<Long> userIdList);
}
